//李庆广。20201225
function allReadyEdit() {
    //获取对象
    var bill_no = curForm.getItem('bill_no');    //单据编码
    var title = curForm.getItem('title');    //单据名称
    var bill_dt = curForm.getItem('bill_dt');    //发放日期
    var remarks = curForm.getItem('remarks');    //备注
    var ocode = curForm.getItem('ocode');    //组织
    var empid = curForm.getItem('empid');    //领用人
    var ytlb = curForm.getItem('ytlb');    //用途类别
    var ck = curForm.getItem('ck');    //项目仓库
    var ck_sd = curForm.getItem('ck_sd');    //仓库锁定标志

    var sd = curForm.getItem('sd');    //锁定
    var sdsj = curForm.getItem('sdsj');    //锁定事件
    var sdrq = curForm.getItem('sdrq');    //锁定日期
    var empid3 = curForm.getItem('empid3');    //锁定人
    var qc = curForm.getItem('qc');    //发放期次
    var jtsycs = curForm.getItem('jtsycs');    //集体使用场所
    var sl = curForm.getItem('sl');    //总数量
    var lydx = curForm.getItem('lydx');    //领用对象
    var xzwp = curForm.getItem('xzwp');    //请选择物品
    var syxz = curForm.getItem('syxz');    //使用选择
    var is_hz = curForm.getItem('is_hz');    //是否已核准
    var xmxz = curForm.getItem('xmxz');    //项目选择
    var pc = curForm.getItem('pc');    //工程项目
    var whzcs = curForm.getItem('whzcs');    //未核准次数
    var sgbz = curForm.getItem('sgbz');    //施工班组
    var zywz = curForm.getItem('zywz');    //主要物资（用于标题）

    curForm.on('dataready', function () {  //加载完成后

        //1.新增单据初始化
        if (otype == 'add') {
            //锁定
            sd.setValue("1");
            sdsj.setValue("发放物资"); //锁定事件   [单据头.锁定事件] =select  '发放物资' from fg_orglist where ocode='000'
            sdrq.setValue(new Date());  // [单据头.锁定日期] =select  getdate() from fg_orglist where ocode='000'
            is_hz.setValue("0");
            execServer('get_hrid_by_fg3userid', { 'phid': $appinfo.userID }, function (res) {
                empid3.setValue(res.data[0].hrid);  //锁定人  [单据头.锁定人] =select ccode from hr_epm_main  where cno= [单据头.录入人]
                BatchBindCombox([empid3]);//代码转名称
            });


            //默认项目
            xmxz.setValue(pc.getValue());  // [单据头.项目选择] =select pc_no   from project_table  where  pc = [单据头.工程项目]
            BatchBindCombox([xmxz]);//代码转名称


            //默认管理的用途类别
            execServer('user_get_ytlb_by_userID', { 'userID': $appinfo.userID, "ocode": ocode.getValue() }, function (res) {   //调取功能扩展

                if (res.data.length > 0) {   //当有数据时
                    ytlb.setValue(res.data[0].ytlb);  //  [单据头.用途类别] =select top 1 ytlb   from fzyp_opteror where opteror = [单据头.录入人] and ocode = [单据头.组织] order by case when ytlb='10000' then '10007' else ytlb end
                    BatchBindCombox([ytlb]);//代码转名称

                }
            });

            getCk_by_pc_and_ytlb()  //最后根据pc及ytlb更新仓库

            lydx.setValue(ytlb.getValue() == "10000" ? 'bzly' : 'grly')  //根据用途类别默认领用对象

            empid.setVisible(lydx.getValue() == "grly" ? true : false);  //根据领用对象初始值隐藏相关字段
            sgbz.setVisible(lydx.getValue() == "bzly" ? true : false);
            jtsycs.setVisible(lydx.getValue() == "jtly" ? true : false);

            empid.userSetMustInput(lydx.getValue() == "grly" ? true : false);  //根据领用对象初始值设定必输
            jtsycs.userSetMustInput(lydx.getValue() == "jtly" ? true : false);
            sgbz.userSetMustInput(lydx.getValue() == "bzly" ? true : false);

            xzwp.userSetReadOnly(Ext.isEmpty(ck.getValue()) ? true : false)  //根据仓库字段是否有值设定物品选择字段是否只读。
        }
        //2.在新增及编辑状态下为通用帮助增加过滤条件
        //2.1 当为仓库非空时
        if (!Ext.isEmpty(ck.getValue())) {
            xzwp.setOutFilter({ "m_code": ck.getValue() })   //按仓库过滤资源。其中m_code为仓库id
        }

        //2.2 项目按合并组织或本组织过滤
        var ocode_v = "'" + ocode.getValue() + "'";
        xmxz.setClientSqlFilter("phid_z =" + ocode_v + "or cat_phid=" + ocode_v);  //复杂过滤，在主组织下可以选择到附属组织，在次组织下可以选择到本组织项目
        // xmxz.setOutFilter({ "cat_phid": ocode_v })  //若只是简单过滤  ，只能在本组织下选择到项目
        // xmxz.setOutFilter({ "phid_z": ocode_v })  //若只是简单过滤  ，只能在主组织下可以选择到项目

        //3.表头字段更新

        ytlb.addListener('helpselected', function () {
            getCk_by_pc_and_ytlb();
            lydx.setValue(ytlb.getValue() == "10000" ? 'bzly' : 'grly')

        });

        xmxz.addListener('helpselected', function () {  //选择项目
            getCk_by_pc_and_ytlb();
            pc.setValue(xmxz.getValue());
            BatchBindCombox([pc]);//代码转名称
        });

        jtsycs.addListener('change', function () {
            set_title();

        });

        zywz.addListener('change', function () {
            set_title();

        });

        empid.addListener('helpselected', function () {  //领用人
            if (lydx.getValue() == 'grly') {   //当为个人领用时
                jtsycs.setValue(empid.rawValue);  //获取通用帮助的name
                f_whzcs();
            }
        });

        sgbz.addListener('helpselected', function () {  //施工班组
            if (lydx.getValue() == 'bzly') {
                jtsycs.setValue(sgbz.rawValue);  //获取通用帮助的name
            }
        });


        sl.addListener('change', function () {
            set_title();

        });

        ck.addListener('change', function () {
            xzwp.userSetReadOnly(Ext.isEmpty(ck.getValue()) ? true : false)  //根据仓库字段是否有值设定物品选择字段是否只读。
            f_whzcs();

        });

        //7.表体
        //7.1选择物品后插入到表单体中
        xzwp.on('helpselected', function () {
            // NG.addDetailBySql('to_d_by_xzwp',{'m_phid': ck.getValue(), 'itemno':xzwp.getValue()},false,'p_form0000000859_d1')
            NG.addDetailByUser('to_d_by_xzwp', { 'm_phid': ck.getValue(), 'itemno': xzwp.getValue() }, '请选择数据', 600, 400, 'p_form0000000859_d1', false);

        })

        //7.2表体更新到表头
        NG.setSumToMaster('sl', 'ffsl', 'p_form0000000859_d1');
        NG.setSpliceToMaster('zywz', 'yp_name', ';', 'p_form0000000859_d1');
        //7.3计算成新率

        NG.bindDetailExp('cxl', '{prc1}/{prc0}*100', 'p_form0000000859_d1');  //[单据体1.成新率(%)] = [单据体1.单价现值]  /[单据体1.单价原值]*100

        //9.定义函数，获取仓库

        function set_title() {
            var zywz_v = zywz.getValue();  //获取主要物资字段的值
            if (!Ext.isEmpty(jtsycs.getValue()) && !Ext.isEmpty(zywz_v) && !Ext.isEmpty(sl.getValue())) {  //两种写法
                var n = zywz_v.length  //取字符串长度
                var n1 = Math.max(zywz_v.indexOf(";"), zywz_v.indexOf(","), zywz_v.indexOf("；"), zywz_v.indexOf("，"));//查不到该字符时为-1，取最大值

                if (n1 != -1 && n1 != NaN && n1 != -Infinity) n = n1;  //若有分号，则取分号前字符数
                //  NG.bindMasterExp("title", "{jtsycs}+'从项目仓库领用'+{zywz}+'等总数为'+{sl}+'的物资'");
                var aaaa = zywz_v.substr(0, n)

                title.setValue(jtsycs.getValue() + "从项目仓库领用" + zywz_v.substr(0, n) + "等总数量为" + sl.getValue() + "的物资")
                var bbb = ''
            }
        }

        function getCk_by_pc_and_ytlb() {  //创建函数，根据项目及用途类别更新仓库
            if (NG.validateEmpty(['xmxz', 'ytlb'])) {  //均为非空
                NG.execServer('user_ckID_by_pcid_and_ytlb', { 'pc': xmxz.getValue(), 'ytlb': ytlb.getValue() });
                if (res.data.length == 0) {
                    NG.alert("该项目尚未建立仓库，请先完成仓库创建！");
                    ytlb.setValue('');
                    ytlb.focus();  //获取焦点
                } else if (res.data.length > 1) {
                    NG.alert("该项目建了多个仓库，先删掉一个！");
                    ytlb.setValue('');
                    ytlb.focus();  //获取焦点

                } else {
                    var ckphid = res.data[0].phid  //获取仓库phid

                    callServer('user_get_cksdxx_by_phid', [{ 'phid': ckphid }], function (sd_xx) {

                        if (sd_xx.record[0].sd == "1") {  //若锁定，即返回值为1
                            var sdxx = '温馨提示：' + sd_xx.record[0].title + '已于' + sd_xx.record[0].sdrq + '因' + sd_xx.record[0].sdsj + '被' + sd_xx.record[0].sdr + '锁定，无法办理相关业务。点击确定将关闭！'
                            Ext.MessageBox.alert('提示', sdxx, function () {  //回调函数
                                window.close();
                            });

                        } else {
                            ck.setValue(ckphid); //更新仓库
                            BatchBindCombox([ck]);//代码转名称
                            xzwp.setOutFilter({ "m_code": ck.getValue() })   //为资源选择添加过滤条件
                        }

                    })
                }
            }
        }

        function f_whzcs() {

            if (empid.getValue() && ck.getValue()) {
                var n = NG.callServer("get_whzcs", { "empid": empid.getValue(), "ckid": ck.getValue(), 'phid': busid }, 'cs')  //当前单据id
                //whzcs.setValue(n);
                if (n > 0) {
                    NG.alert('您有' + n + '条未审核单据，请先审核，否则无法继续！');
                    xzwp.userSetReadOnly(true);    //若有未核准单据，则冻结物品选择

                } else {
                    xzwp.userSetReadOnly(false);
                }
            }
        }

    })

}

//编辑界面，如果编辑界面没有核准按钮，可不写
function getSaveDataEdit(type) {
    if(NG.getValue('bill_no')) {
        if (type == 'Verify') {
            return {funcname: '核准', paramstr: [{'bill_no': NG.getValue('bill_no')}]};
        } else if (type == 'UnVerify') {
            return {funcname: '取消核准', paramstr: [{'bill_no': NG.getValue('bill_no')}]};
        }
    }
}

//列表界面
function getSaveDataList(type) {
    if(NG._getGrid().getSelectionModel().getSelection().length>0) {
        if (type == 'Verify') {
            return {
                funcname: '核准',
                paramstr: [{'bill_no': NG._getGrid().getSelectionModel().getSelection()[0].data.bill_no}]
            };
        } else if (type == 'UnVerify') {
            return {
                funcname: '取消核准',
                paramstr: [{'bill_no': NG._getGrid().getSelectionModel().getSelection()[0].data.bill_no}]
            };
        }
    }
}

//删除前检测
function beforeDeleteList() {
    var v_ischeck=curGrid.getSelectionModel().getSelection()[0].data.ischeck;
    if (v_ischeck=='1') {
        NG.alert('单据已核准，不允许删除');
        return false;
    } else {
        return true;
    }
}
